---
title: Stackdriver Config
description: Configuration for Stackdriver filter.
location: https://istio.io/docs/reference/config/proxy_extensions/stackdriver.html
layout: protoc-gen-docs
generator: protoc-gen-docs
weight: 20
number_of_entries: 4
---
<h2 id="CustomConfig">CustomConfig</h2>
<section>
<p>Custom instance configuration overrides.
Provides a way to customize logs.</p>

<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody>
<tr id="CustomConfig-dimensions">
<td><code>dimensions</code></td>
<td><code>map&lt;string,&nbsp;string&gt;</code></td>
<td>
<p>(Optional) Collection of tag names and tag expressions to include in the
instance. Conflicts are resolved by the tag name by overriding previously
supplied values.</p>

</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="PluginConfig">PluginConfig</h2>
<section>
<p>next id: 17</p>

<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody>
<tr id="PluginConfig-max_log_batch_size_in_bytes">
<td><code>max_log_batch_size_in_bytes</code></td>
<td><code>int32</code></td>
<td>
<p>Optional. Allows configuration of the size of the LogWrite request. The
size is in bytes, so that it allows for better performance. Default is 4MB.
The size of one log entry within LogWrite request is approx 1Kb.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-log_report_duration">
<td><code>log_report_duration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></code></td>
<td>
<p>Optional. Allows configuration of the time between calls out to the
stackdriver logging service to report buffered LogWrite request.
Customers can choose to report more aggressively by keeping shorter report
interval if needed. Default is 10s.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-enable_audit_log">
<td><code>enable_audit_log</code></td>
<td><code>bool</code></td>
<td>
<p>Optional. Controls whether to export audit log.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-destination_service_name">
<td><code>destination_service_name</code></td>
<td><code>string</code></td>
<td>
<p>Optional. FQDN of destination service that the request routed to, e.g.
productpage.default.svc.cluster.local. If not provided, request host header
will be used instead</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-max_peer_cache_size">
<td><code>max_peer_cache_size</code></td>
<td><code>int32</code></td>
<td>
<p>maximum size of the peer metadata cache.
A long lived proxy that connects with many transient peers can build up a
large cache. To turn off the cache, set this field to a negative value.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-disable_host_header_fallback">
<td><code>disable_host_header_fallback</code></td>
<td><code>bool</code></td>
<td>
<p>Optional: Disable using host header as a fallback if destination service is
not available from the controlplane. Disable the fallback if the host
header originates outsides the mesh, like at ingress.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-max_edges_batch_size">
<td><code>max_edges_batch_size</code></td>
<td><code>int32</code></td>
<td>
<p>Optional. Allows configuration of the number of traffic assertions to batch
into a single request. Default is 100. Max is 1000.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-enable_log_compression">
<td><code>enable_log_compression</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue">BoolValue</a></code></td>
<td>
<p>Optional. Allows enabling log compression for stackdriver access logs.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-access_logging">
<td><code>access_logging</code></td>
<td><code><a href="#PluginConfig-AccessLogging">AccessLogging</a></code></td>
<td>
<p>Optional. Controls what type of logs to export.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-access_logging_filter_expression">
<td><code>access_logging_filter_expression</code></td>
<td><code>string</code></td>
<td>
<p>CEL expression for filtering access logging. If the expression evaluates
to true, an access log entry will be generated. Otherwise, no access log
entry will be generated.
NOTE: Audit logs ignore configured filters.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-custom_log_config">
<td><code>custom_log_config</code></td>
<td><code><a href="#CustomConfig">CustomConfig</a></code></td>
<td>
<p>(Optional) Collection of tag names and tag expressions to include in the
logs. Conflicts are resolved by the tag name by overriding previously
supplied values. Does not apply to audit logs.
See
<a href="https://istio.io/latest/docs/tasks/observability/metrics/customize-metrics/#use-expressions-for-values">https://istio.io/latest/docs/tasks/observability/metrics/customize-metrics/#use-expressions-for-values</a>
for more details about the expression language.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-metric_expiry_duration">
<td><code>metric_expiry_duration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></code></td>
<td>
<p>Optional. Controls the metric expiry duration. If a metric time series is
not updated for the given duration, it will be purged from time series
cache as well as metric reporting. If this is not set or set to 0, time
series will never be expired. This option is useful to avoid unbounded
metric label explodes proxy memory.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-metrics_overrides">
<td><code>metrics_overrides</code></td>
<td><code>map&lt;string,&nbsp;<a href="#MetricsOverride">MetricsOverride</a>&gt;</code></td>
<td>
<p>Optional. Allows altering metrics behavior.
Metric names for specifying overloads drop the <code>istio.io/service</code> prefix.
Examples: <code>server/request_count</code>, <code>client/roundtrip_latencies</code></p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-disable_server_access_logging" class="deprecated ">
<td><code>disable_server_access_logging</code></td>
<td><code>bool</code></td>
<td>
<p>Optional. Controls whether to export server access log.
This is deprecated in favor of AccessLogging enum.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-enable_mesh_edges_reporting" class="deprecated ">
<td><code>enable_mesh_edges_reporting</code></td>
<td><code>bool</code></td>
<td>
<p>Optional. Controls whether or not to export mesh edges to a mesh edges
service. This is disabled by default.
Deprecated &ndash; Mesh edge reporting is no longer supported and this setting
is no-op.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-mesh_edges_reporting_duration" class="deprecated ">
<td><code>mesh_edges_reporting_duration</code></td>
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></code></td>
<td>
<p>Optional. Allows configuration of the time between calls out to the mesh
edges service to report <em>NEW</em> edges. The minimum configurable duration is
<code>10s</code>. NOTE: This option ONLY configures the intermediate reporting of
novel edges. Once every <code>10m</code>, all edges observed in that 10m window are
reported and the local cache is cleared.
The default duration is <code>1m</code>. Any value greater than <code>10m</code> will result in
reporting every <code>10m</code>.
Deprecated &ndash; Mesh edge reporting is no longer supported and this setting
is no-op.</p>

</td>
<td>
No
</td>
</tr>
<tr id="PluginConfig-disable_http_size_metrics" class="deprecated ">
<td><code>disable_http_size_metrics</code></td>
<td><code>bool</code></td>
<td>
<p>Optional. Allows disabling of reporting of the request and response size
metrics for HTTP traffic. Defaults to false (request and response size
metrics are enabled).
Deprecated &ndash; use <code>metrics_overrides</code> instead.
if <code>metrics_overrides</code> is used, this value will be ignored.</p>

</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="MetricsOverride">MetricsOverride</h2>
<section>
<p>Provides behavior modifications for Cloud Monitoring metrics.</p>

<table class="message-fields">
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody>
<tr id="MetricsOverride-drop">
<td><code>drop</code></td>
<td><code>bool</code></td>
<td>
<p>Optional. If true, no data for the associated metric will be collected or
exported.</p>

</td>
<td>
No
</td>
</tr>
<tr id="MetricsOverride-tag_overrides">
<td><code>tag_overrides</code></td>
<td><code>map&lt;string,&nbsp;string&gt;</code></td>
<td>
<p>Optional. Maps tag names to value expressions that will be used at
reporting time. If the tag name does not match a well-known tag for the
istio Cloud Monitoring metrics, the configuration will have no effect.</p>

</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</section>
<h2 id="PluginConfig-AccessLogging">PluginConfig.AccessLogging</h2>
<section>
<p>Types of Access logs to export. Does not affect audit logging.</p>

<table class="enum-values">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="PluginConfig-AccessLogging-NONE">
<td><code>NONE</code></td>
<td>
<p>No Logs.</p>

</td>
</tr>
<tr id="PluginConfig-AccessLogging-FULL">
<td><code>FULL</code></td>
<td>
<p>All logs including both success and error logs.</p>

</td>
</tr>
<tr id="PluginConfig-AccessLogging-ERRORS_ONLY">
<td><code>ERRORS_ONLY</code></td>
<td>
<p>All error logs. This is currently only available for outbound/client side
logs. A request is classified as error when <code>status&gt;=400 or response_flag != &quot;-&quot;</code></p>

</td>
</tr>
</tbody>
</table>
</section>
